技術問答
技術文章
iT 徵才
聊天室
2025 鐵人賽
登入/註冊
問答
文章
Tag
邦友
鐵人賽
搜尋
2019 iT 邦幫忙鐵人賽
DAY
19
0
AI & Data
Puppeteer 簡單快速建立自己的 Nodejs 爬蟲
系列 第
19
篇
Day 19 Puppeteer API 介紹 - class: ExecutionContext, JSHandle
2019鐵人賽
henry.w
2018-10-19 22:32:12
1978 瀏覽
分享至
class: ExecutionContext
這個是代表JavaScript execution的context,每個page都有很多個,
這可以透過frame.executionContext()獲得
executionContext.evaluate(pageFunction, ...args)
回傳promise 可以透過他執行一些function
executionContext.evaluateHandle(pageFunction, ...args)
會回傳一個jshandle的promise
executionContext.frame()
回傳父frame
executionContext.queryObjects(prototypeHandle)
可以拿到JShandle的實例
class: JSHandle
代表JavaScript的物件,可以透過 page.evaluateHandle 拿到
const windowHandle = await page.evaluateHandle(() => window);
jsHandle.asElement()
如果是 ElementHandle 物件,會回傳自己或null
jsHandle.dispose()
丟棄此物件
jsHandle.executionContext()
回傳他所屬的execution context
jsHandle.getProperties()
回傳 Map(string, JSHandle)可以透過他們拿到js物件
jsHandle.getProperty(propertyName)
回傳單個JSHandle
jsHandle.jsonValue()
回傳object所代表的JSON,如果沒辦法會丟錯誤
留言
追蹤
檢舉
上一篇
Day 18 Puppeteer API 介紹 - class: Frame, ConsoleMessage
下一篇
Day 20 Puppeteer API 介紹 - class: ElementHandle
系列文
Puppeteer 簡單快速建立自己的 Nodejs 爬蟲
共
25
篇
目錄
RSS系列文
訂閱系列文
28
人訂閱
21
Day 21 Puppeteer API 介紹 - class: SecurityDetails, Target, CDPSession, TimeoutError
22
Day 22 Puppeteer處理lazy load, SSR, 反爬蟲防禦, 高效地爬大量數據
23
Day 23 爬蟲範例-中央社(練習使用typescript)
24
Day 24 爬蟲範例-中央社-每個子項(類lazy load)
25
Day 25 爬蟲範例-中央社-繼續
完整目錄
熱門推薦
{{ item.subject }}
{{ item.channelVendor }}
|
{{ item.webinarstarted }}
|
{{ formatDate(item.duration) }}
直播中
立即報名
尚未有邦友留言
立即登入留言
iThome鐵人賽
參賽組數
902
組
團體組數
37
組
累計文章數
19844
篇
完賽人數
528
人
看影片追技術
看更多
{{ item.subject }}
{{ item.channelVendor }}
|
{{ formatDate(item.duration) }}
直播中
熱門tag
15th鐵人賽
16th鐵人賽
13th鐵人賽
14th鐵人賽
17th鐵人賽
12th鐵人賽
11th鐵人賽
鐵人賽
2019鐵人賽
javascript
2018鐵人賽
python
2017鐵人賽
windows
php
c#
linux
windows server
css
react
熱門問題
iOS 裝置無法透過 IPsec VPN 連入 FortiGate,請問正確設定方式?
EPSON LQ-690C 印表機中一刀跑版
[Javascript] 非同步執行,如何延緩後面程式的處理 ??
AARQ 通訊協議是?
印表機設定 - Epson 690c
Dell or Asus 伺服器,哪牌比較好?
Dell or Asus Storage 或NAS,哪牌比較好?
將硬碟上的 EFI 分割區複製到固態硬碟後,ARM 架構的 Ubuntu Server 無法啟動
FortiGate SSLVPN替代方案?
sdray vigor2927 sslvpn ip設定問題
熱門回答
iOS 裝置無法透過 IPsec VPN 連入 FortiGate,請問正確設定方式?
EPSON LQ-690C 印表機中一刀跑版
[Javascript] 非同步執行,如何延緩後面程式的處理 ??
FortiGate SSLVPN替代方案?
印表機設定 - Epson 690c
熱門文章
Vue 3 生命週期(Lifecycle) 四大階段 建立(Create)、掛載(Mount)、更新(Update)、 銷毀(Unmount)
[資料治理實戰回憶錄]0-從失敗中開始
台灣職場必學的Excel函數技巧
VScode 開發應用系統專案(8-1) - Spring Boot Security 設定與認證前置準備
什麼是四大報表及其組成?完整解析
IT邦幫忙
×
標記使用者
輸入對方的帳號或暱稱
Loading
找不到結果。
標記
{{ result.label }}
{{ result.account }}